package com.travel.server.manager.api;

import com.travel.server.manager.dto.request.order.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * @Author: LiZhenhui
 * @Date: 2018/10/18 15:36
 * @Desc:
 */
public interface IOrderService {

    /**
     * 查询订单列表
     * @param request
     * @return
     */
    @RequestMapping(value = "query_order_list", method = RequestMethod.POST)
    Object queryOrderList(@RequestBody QueryOrderListRequest request);

    /**
     * 修改订单信息（备注/步骤/加星）
     * @param request
     * @return
     */
    @RequestMapping(value = "update_order_info", method = RequestMethod.POST)
    Object updateOrderInfo(@RequestBody UpdateOrderInfoRequest request);

    /**
     * 订单转接
     * @param request
     * @return
     */
    @RequestMapping(value = "transfer_order", method = RequestMethod.POST)
    Object transferOrder(@RequestBody TransferOrderRequest request);

    /**
     * 查询退款维权订单列表
     * @param request
     * @return
     */
    @RequestMapping(value = "query_right_order_list", method = RequestMethod.POST)
    Object queryRightOrderList(@RequestBody QueryRightOrderListRequest request);

    /**
     * 查询订单详情
     * @param request
     * @return
     */
    @RequestMapping(value = "query_order_detail", method = RequestMethod.POST)
    Object queryOrderDetail(@RequestBody QueryOrderDetailRequest request);

    /**
     * 修改订单价格
     * @param request
     * @return
     */
    @RequestMapping(value = "update_order_price", method = RequestMethod.POST)
    Object updateOrderPrice(UpdateOrderPriceRequest request);

    /**
     * 主动退款
     * @param request
     * @return
     */
    @RequestMapping(value = "refund_order", method = RequestMethod.POST)
    Object refundOrder(@RequestBody RefundOrderRequest request);

    /**
     * 查询退款订单详情
     * @param request
     * @return
     */
    @RequestMapping(value = "query_refund_order_detail", method = RequestMethod.POST)
    Object queryRefundOrderDetail(@RequestBody QueryRefundOrderDetailRequest request);

    /**
     * 查询订单审查问卷
     * @param request
     * @return
     */
    @RequestMapping(value = "query_order_question", method = RequestMethod.POST)
    Object queryOrderQuestion(@RequestBody QueryOrderQuestionRequest request);

    /**
     * 查询订单出行资料
     * @param request
     * @return
     */
    @RequestMapping(value = "query_order_travel_data", method = RequestMethod.POST)
    Object queryOrderTravelData(@RequestBody QueryOrderTravelDataRequest request);
}
